// pages/confirm_order2/index.js
import {
    request
} from "../../request/index.js"
Page({

    /**
     * 页面的初始数据
     */
    data: {
        address: {},
        login_obj: {},
        goods: ["橘子", "生姜", "西瓜"],
        allChecked: {},
        totalPrice: {},
        totalNum: {},
        cart: {},
        send_time: {},
        select: false,
        adress_time: '',

        cart_web: {},
        cart_web_quest: {},
        date: '2021-07-01',
        time: '12:01',
    },

    // 点击展示下拉框
    bindShowMsg() {
        this.setData({
            select: !this.data.select
        })



    },
    bindDateChange: function (e) {
        console.log('picker发送选择改变，携带值为', e.detail.value)
        this.setData({
            date: e.detail.value
        })
    },
    bindTimeChange: function (e) {
        console.log('picker发送选择改变，携带值为', e.detail.value)
        this.setData({
            time: e.detail.value
        })
    },
    // 点击选择下拉框地址
    mySelect(e) {
        console.log(e)
        var name = e.currentTarget.dataset.name





        // 地址放入data中
        this.setData({
            adress_time: name,
            select: false
        })
        // wx.setStorageSync(adress)
    },

    onShow() {
        // 1、获取缓存中的收货地址信息
        const login_obj = wx.getStorageSync("login_obj");
        // 获取缓存中的购物车数据
        const cart_web = wx.getStorageSync("cart_web") || [];
        // 过滤购物车中的数组
        var checkedCart = cart_web.filter(v => v.checked);

        let cart_web_quest = checkedCart.map(item => {
            return {
                "customer": item.spGwcCustomer,
                // "date": this.data.adress_time,
                "date": this.data.date,
                "name": this.data.address.userName,
                "address": this.data.address.countyName,
                "phone": this.data.address.nationalCode,
                "spbh": item.spGwcSpBh,
                "xxaddress": this.data.address.detailInfo
            }
        });
        console.log("cart_web提前处理请求体", cart_web_quest);
        this.setData({
            cart_web_quest
        })


        console.log("cart_web选中的购物车", cart_web);

        // 2、给data数据赋值
        this.setData({
            login_obj,
            cart_web
        })


        //确认订单配送时间请求的时间
        // request({
                // url: 'https://yunbao.greatforest.com.cn/ruoyi-admin/qt/showTime',
            //     url: 'http://192.168.3.144:8080/qt/showTime',
            //     method: "GET"
            // })
            // .then(res => {
                // 主页请求的商品数据
                // console.log('确认订单配送时间', res);
                // var send_time = res
                // this.setData({

                //     send_time
                // })
            // })







        this.setCart(checkedCart);
    },
    // 封装好的 设置购物车状态的同时 重新计算 底部工具栏的数据 全选 总价格 购买总数
    // 封装好的 设置购物车状态的同时 重新计算 底部工具栏的数据 全选 总价格 购买总数
    setCart(cart_web) {
        // this.setData({
        //   cart
        // })


        // 二、再次计算底部总价格总数量
        // 计算全选
        // every数组方法 会遍历 会接收一个回调函数 如果每一个回调函数都返回true， every方法返回true
        // 只要 有一个回调函数返回false 那么就不再循环执行，直接返回false
        // 如果是空数组 调用every，返回值也是true
        const allChecked = cart_web.length ? cart_web.every(v => v.checked) : false;
        // 为了节约性能最后还是在计算总价格里面判断了84行

        // 在计算这顺便判断全选框
        // let allChecked = true;
        // 总价格 总数量
        let totalPrice_min = 0;
        let totalPrice_max = 0;
        let totalNum = 0;

        cart_web.forEach(v => {
            if (v.checked) {
                // totalPrice_min += v.spGwcSpCount * v.spGwcSpMinprice;
                totalPrice_min += v.spGwcSpCount * v.spGwcSpMindj;
                // totalPrice_max += v.spGwcSpCount * v.spGwcSpMaxprice;
                totalPrice_max += v.spGwcSpCount * v.spGwcSpMaxdj;
                totalNum += v.spGwcSpCount;
            } else {
                // allChecked = false;
            }
        });
        // 判断数组是否为空
        // allChecked = cart.length != 0 ? allChecked : false;
        this.setData({
            allChecked,
            totalPrice_min,
            totalPrice_max,
            totalNum,
            // cart,

            cart_web
        });
        wx.setStorageSync("cart_web", this.data.cart_web);
        console.log("是否cart_web放入storge", cart_web)
    },


    // 联系商家
    phone1_click() {
        wx.showToast({
            title: "123456789",
            icon: 'none',
            image: '',
            duration: 3500,
            mask: false,
            success: (result) => {

            },
            fail: () => {},
            complete: () => {}
        });
    },
    // 取消订单
    returnback() {

        wx.showModal({
            title: '提示',
            content: '是否要取消？',
            success: (res) => {
                if (res.confirm) {
                    // 删除商品
                    //             cart.splice(index, 1);
                    //             this.setCart(cart);
                    wx.navigateBack({
                        delta: 1
                    });


                } else if (res.cancel) {
                    console.log('用户点击取消')
                }
            }
        })
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {

    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {

    },


    //1、点击收货地址
    handleChooseAdress() {
        console.log("触发");
        //2、小程序内置api直接调用（若取消就不能调用了，所以在此之前先获取权限）
        // wx.chooseAddress({
        //   success: (result) => {
        //     console.log(result)
        //   },
        //   // fail: () => {},
        //   // complete: () => {}
        // });

        // 2.获取 用户对小程序 所授予 获取地址的 权限状态 scope
        // （1）假设 用户 点击获取收货地址的提示框 确定 scope 值 true（调用成功）
        // 需要调取的数据(authSetting / scope.address)
        // （2）假设用户重来没有调用过 收货的api scope 为undefine（调用成功）
        // （3）假设 用户 点击取消 scope值为false（不能调用）
        // 此刻要诱导用户自己打开 授权设置页面（wx.openSetting） 重新给予获取权限
        // 再获取收货地址
        //  (4) 把收货地址 存入到本地存储中

        // 1、获取权限状态      
        wx.getSetting({
            success: (result) => {
                console.log(result)
                // 获取后赋值 当有怪异的属性名时用[""]包起来
                const scopeAddress = result.authSetting["scope.address"];
                if (scopeAddress === true || scopeAddress === undefined) {
                    // 2、调用收货地址
                    wx.chooseAddress({
                        success: (result1) => {
                            console.log("拿到了收货地址", result1)

                            // 储存到缓存中
                            wx.setStorageSync("address", result1);
                            // 获取缓存中的购物车数据
                            const address = wx.getStorageSync("address") || [];

                            // 2、给data数据赋值
                            this.setData({
                                address
                            })
                        },
                        // fail: () => {},
                        // complete: () => {}
                    });
                } else {
                    // 3.用户如果拒绝权限 诱导他打开授权页面
                    wx.openSetting({
                        success: (result2) => {
                            // 4、可以调用收货地址代码
                            wx.chooseAddress({
                                success: (result3) => {
                                    console.log(result3)
                                }
                            });
                        },
                        // fail: () => {},
                        // complete: () => {}
                    });
                }
            },
            // fail: () => {},
            // complete: () => {}
        });

    },


    // 提交按钮
    submit() {
        console.log("最终确认订单");
        // 先获取本地的存储地址
        let ifaddress = this.data.address.errMsg

        if (ifaddress) {
            console.log("已经点击获取地址_进入")

            // 获取缓存中的购物车数据
            // const cart_web = wx.getStorageSync("cart_web") || [];
            // 过滤购物车中的数组
            var checkedCart = this.data.cart_web.filter(v => v.checked);

            let cart_web_quest = checkedCart.map(item => {
                return {
                    "customer": item.spGwcCustomer,
                    "spguige": item.spGwcSpGuige,
                    "date": this.data.date,
                    "name": this.data.login_obj.userName,
                    "address": this.data.address.countyName,
                    "phone": this.data.address.nationalCode,
                    "spbh": item.spGwcSpBh,
                    "xxaddress": this.data.address.detailInfo
                    
                }
            });
            console.log("cart_web提前处理请求体", cart_web_quest);
            this.setData({
                cart_web_quest
            })


            // console.log("cart_web选中的购物车", cart_web);

            // 2、给data数据赋值
            // this.setData({
            //   login_obj,

            // })


            // 提交订单请求
            wx.request({
                url: 'https://yunbao.greatforest.com.cn/ruoyi-admin/dd/addSpDd',
                // url: 'http://192.168.3.144:8080/dd/addSpDd',
                dataType: 'json',
                responseType: 'text',
                // 提交的是web_cartz中的购物车订单（（但是无法提交单选框选中的订单））
                // data: this.data.cart_web,
                data: this.data.cart_web_quest,
                method: "POST",
                success: function (e) {
                    //成功回调
                    console.log("提交请求信息", e)
                    wx.showToast({
                        title: e.data.msg,
                        icon: 'none',
                        duration: 1500,
                        success: function () {
                            setTimeout(() => {
                                wx.switchTab({
                                  url: '/pages/user/index',
                                })
                              }, 1500);
                        }
                    })
                }
                // .then(res=>){

                // }
            })

        } else {
            console.log("否则 —— 未选择收货地址，弹出弹框")
            wx.showToast({
                title: '请先选择收货地址',
                icon: 'error'
            })
        }


        // // 原来提交订单请求
        // wx.request({
        //   url: 'https://yunbao.greatforest.com.cn/ruoyi-admin/dd/addSpDd',
        //   dataType: 'json',
        //   responseType: 'text',
        //   // 提交的是web_cartz中的购物车订单（（但是无法提交单选框选中的订单））
        //   // data: this.data.cart_web,
        //   data: this.data.cart_web_quest,
        //   method: "POST",
        //   success: function (e) {
        //     //成功回调
        //     console.log("提交请求信息", e)
        //     wx.showToast({
        //       title: e.data.msg,
        //       icon: 'none',
        //       duration: 4000,
        //       success: function () {
        //         // wx.navigateTo({
        //         //   url: '/pages/login/index',
        //         // })
        //       }
        //     })
        //   }
        //   // .then(res=>){

        //   // }
        // })


    }
})